package com.snpic.appaw.module.third.api.bjpt.dto.iSPolicyQuery;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * @author JiJun
 * @date 2025/9/19 19:17
 * @修改时间 2025/9/19 19:17
 * @description
 */

@Data
@Schema(description = "保单标的信息数据传输对象")
public class ISMotorDTO {

    @Schema(description = "保单号", maxLength = 30)
    private String policyNo;

    @Schema(description = "分保单号", maxLength = 30)
    private String subPolicyNo;

    @Schema(description = "计划代码[详见码表]", maxLength = 4)
    private String planCode;

    @Schema(description = "险种代码[详见码表]", maxLength = 4)
    private String riskCode;

    @Schema(description = "标的序号", example = "1")
    private BigDecimal itemNo;

    @Schema(description = "车牌号码", maxLength = 100)
    private String licenseNo;

    @Schema(description = "号牌种类代码[详见码表](区分上海北京机构)", maxLength = 2)
    private String licenseTypeCode;

    @Schema(description = "机动车种类[详见码表]", maxLength = 4)
    private String carKindCode;

    @Schema(description = "车辆种类[详见码表]", maxLength = 6)
    private String carKindCodeShow;

    @Schema(description = "车辆型号", maxLength = 120)
    private String modelCode;

    @Schema(description = "厂牌型号名称", maxLength = 400)
    private String brandName;

    @Schema(description = "打印厂牌型号名称", maxLength = 400)
    private String printBrandName;

    @Schema(description = "车辆损失险车型", maxLength = 2)
    private String carTypeCode;

    @Schema(description = "车主", maxLength = 1000)
    private String carOwner;

    @Schema(description = "车辆使用性质[详见码表]", maxLength = 2)
    private String useNatureShow;

    @Schema(description = "车辆所属性质[详见码表]", maxLength = 4)
    private String attachNature;

    @Schema(description = "车辆用途[详见码表]", maxLength = 4)
    private String carUseType;

    @Schema(description = "座位数", example = "5")
    private BigDecimal seatCount;

    @Schema(description = "吨位数", example = "1.5")
    private BigDecimal tonCount;

    @Schema(description = "排量", example = "1.998")
    private BigDecimal exhaustScale;

    @Schema(description = "功率", example = "135.5")
    private BigDecimal power;

    @Schema(description = "初登日期(YYYY-MM-DD)")
    private LocalDateTime singeinDate;

    @Schema(description = "购置日期(YYYY-MM-DD)")
    private LocalDateTime enrollDate;

    @Schema(description = "使用年限", example = "3")
    private BigDecimal useYears;

    @Schema(description = "新车购置价", example = "185000.00")
    private BigDecimal purchasePrice;

    @Schema(description = "实际价值", example = "150000.00")
    private BigDecimal actualValue;

    @Schema(description = "行驶证车辆类型[详见码表]", maxLength = 6)
    private String vehicleCategory;

    @Schema(description = "过户标志", maxLength = 2)
    private String chgOwnerFlag;

    @Schema(description = "过户时间(YYYY-MM-DD)")
    private LocalDateTime transferDate;

    @Schema(description = "行驶里程数", example = "45000.00")
    private BigDecimal runMiles;

    @Schema(description = "行驶区域代码[详见码表]01-出单地省内02-中国境内03-固定路线04-场内", maxLength = 10)
    private String runAreaCode;

    @Schema(description = "新旧车标志N-新车 O-旧车", maxLength = 2)
    private String carNewOldFlag;

    @Schema(description = "国别性质1-国产2-进口3-合资", maxLength = 1)
    private String countryNature;

    @Schema(description = "车贷多年投保标志0.否;1.是", maxLength = 2)
    private String loanVehicleFlag;

    @Schema(description = "发证日期(YYYY-MM-DD)")
    private String certificateDate;

    @Schema(description = "上年承保公司保单号", maxLength = 40)
    private String previousPolicyNo;

    @Schema(description = "车牌底色代码[详见码表]", maxLength = 2)
    private String licenseColorCode;

    @Schema(description = "车架号，和VIN一致", maxLength = 30)
    private String frameNo;

    @Schema(description = "VIN码，不补足17位", maxLength = 18)
    private String vinNo;

    @Schema(description = "发动机号", maxLength = 45)
    private String engineNo;

    @Schema(description = "整备质量", example = "1500.0000")
    private BigDecimal completeKerbMass;

    @Schema(description = "港澳车标志 默认：1-内地", maxLength = 1)
    private String hkFlag;

    @Schema(description = "车主类型[详见码表]", maxLength = 2)
    private String insuredTypeCode;

    @Schema(description = "车主证件类型[详见码表]", maxLength = 2)
    private String identifyType;

    @Schema(description = "车主证件号码", maxLength = 30)
    private String identifyNumber;

    @Schema(description = "被保险人与车辆的关系", maxLength = 1)
    private String carInsuredRelation;

    @Schema(description = "往年违章记录次数代码", maxLength = 4)
    private String peccancyRecord;

    @Schema(description = "验车标志位", maxLength = 2)
    private String carCheckStatus;

    @Schema(description = "验车原因", maxLength = 60)
    private String carCheckReason;

    @Schema(description = "验车人代码", maxLength = 60)
    private String carChecker;

    @Schema(description = "验车时间", maxLength = 30)
    private String carCheckTime;

    @Schema(description = "汽车厂牌", maxLength = 100)
    private String make;

    @Schema(description = "制造厂商", maxLength = 400)
    private String factory;

    @Schema(description = "本地车标志1-本地车，2-外地车，3-港澳单牌车", maxLength = 1)
    private String localVehicleInd;

    @Schema(description = "玻璃类型[详见码表]", maxLength = 30)
    private String glassType;

    @Schema(description = "车身颜色代码[详见码表]", maxLength = 6)
    private String colorCode;

    @Schema(description = "车身颜色名称", maxLength = 100)
    private String colorName;

    @Schema(description = "精友车价选择标志1-类比价含税2-类比价不含税3-新车购置价(含税)4-新车购置价(不含税)", maxLength = 10)
    private String localPriceInd;

    @Schema(description = "行驶区域名称", maxLength = 30)
    private String runAreaName;

    @Schema(description = "车型代码", maxLength = 50)
    private String longLoadPermit;

    @Schema(description = "交强险特殊车标志(标志代码)", maxLength = 20)
    private String specialCarFlag;

    @Schema(description = "车辆品牌: 行驶证品牌型号只输入中文，如“帕萨特”", maxLength = 64)
    private String carBrand;

    @Schema(description = "省份代码")
    private String itemProvinceCode;

    @Schema(description = "城市代码")
    private String itemCityCode;

    @Schema(description = "县区代码")
    private String itemDistrictCode;

    @Schema(description = "手工编辑地址")
    private String damageAddress;

    @Schema(description = "行业车型编码")
    private String ciModelCode;

    @Schema(description = "车款名称")
    private String ciCarName;

    @Schema(description = "公告类型")
    private String ciNoticeType;

    @Schema(description = "车主手机号码")
    private String carOwnerPhoneNo;

    @Schema(description = "车主地址")
    private String ownerAdress;

    @Schema(description = "车主性别")
    private String sex;

    @Schema(description = "车主年龄")
    private String age;

    @Schema(description = "交管车辆性质", maxLength = 10)
    private String pmUserType;

    @Schema(description = "打印车辆用途", maxLength = 20)
    private String printCarUseType;

    @Schema(description = "车系", maxLength = 400)
    private String familyName;

    @Schema(description = "新车销售公司名称", maxLength = 200)
    private String saleCompany;

    @Schema(description = "新车销售公司所在地市代码", maxLength = 8)
    private String saleAreaCode;

    @Schema(description = "是否4S店销售1:是,0:否", maxLength = 1)
    private String sale4sFlag;

    @Schema(description = "新能源车标识")
    private String isNewEgyVec;

    @Schema(description = "纯电续航里程", example = "500.0")
    private Long pureRange;

    @Schema(description = "燃料（能源）种类")
    private String modelEnergyType;

    @Schema(description = "其他燃料（能源）种类描述", maxLength = 50)
    private String otherEnergyTypeDesc;

    @Schema(description = "投保人是否为经营者本人", maxLength = 1)
    private String applicantFlag;

    @Schema(description = "跨省首年投保未出险证明的年数")
    private Double noDamageYears;

    @Schema(description = "团车业务编号")
    private String groupCode;

    @Schema(description = "第一受益人")
    private String firstBeneficiary;

    @Schema(description = "标的风险类型")
    private String targetType;
}